<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Document</title>
    <script src="./js/vue.js"></script>
  </head>
  <!-- 
  Vue对数组的监视
  只有调用数组的以下方法之后Vue才会监测到数组数据的改变，重新解析
      push            在数组最后添加一个元素
      pop             取除数组最后的一个元素
      shift           取出数组第一个元素
      unshift         向数组头部添加一个元素
      splice          指定下标替换
      sort            排序
      reverse         倒序     
      
      也可以使用Vue.set和vm.$set方法改变数组，Vue也能监测到数组改变
 -->
  <body>
    <div id="root">
      <h1>人员爱好</h1>
      <ul>
        <li v-for="(h,index) in person.hobby" :key="index">{{h}}</li>
      </ul>
      <button @click="addHobby">点击给人员添加一个爱好</button>
    </div>

    <script>
      //创建Vue实例,得到 ViewModel
      const vm = new Vue({
        el: '#root',
        data: {
          person: {
            name: '小王',
            age: 18,
            hobby: ['喝酒', '抽烟', '烫头'],
            friends: [
              { name: '张三', age: 20 },
              { name: '李四', age: 30 },
            ],
          },
        },
        methods: {
          addHobby() {
            this.person.hobby.unshift('打乒乓球')
            // Vue.set(this.person.hobby, 3, '学习')
            //this.$set(this.person.hobby, 3, '学习')
          },
        },
        computed: {},
      })
    </script>
  </body>
</html>
